home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio / Ham Radio CD-ROM (Emerald Software) (1995).ISO / cw / morsec / cw.doc < prev    next >
Text File  |  1986-10-20  |  20KB  |  421 lines

  1.      CW is a Morse Code send/receive program designed to run on the IBM PC and
  2. it's clones.  The program expects to find the Color Graphics Adapter present.
  3. It will not function correctly with a Mono board or the EGA.  A split screen
  4. format is used for the visual interface and on-line help is available to the
  5. operator.  On-line help is provided by the file HELP.CW.  If that file is not
  6. on the default drive, the program will still function, but without help.
  7.  
  8.      The program is user configurable and creates a file which supports the
  9. screen images for subsequent use.  The user has the option of changing the 
  10. operating characteristics and input/output environment recognized by the pro-
  11. gram.  These may then be saved by CW in a file called INIT.CW, an ASCII file
  12. which can be viewed/modified using a word processor.  The default character-
  13. istics provide for Morse Input and Output on communications port COM1 using 
  14. the RTS and CTS signal lines.   If INIT.CW is not on the default disk then
  15. the default values are assumed. 
  16.  
  17.      CW.COM is a user supported program which may be transferred and/or copied
  18. as often as you like.  No monetary fees (other than disk copying) may be
  19. charged as a part of this service.  The program is a product of 
  20.  
  21.           Dave Freese, W1HKJ
  22.           c/o Clermont Computer Consultants
  23.           29 N Ravenwood Drive
  24.           Cape May Court House, NJ  08210
  25.  
  26.           (609) 624 0076
  27.  
  28.      The program is written in TURBO (tm) PASCAL and demonstrates how well
  29. that particular product allows full use of the PC's hardware. Despite the 
  30. disparaging reviews from some self proclaimed keepers of the PASCAL standard,
  31. this program demonstrates the efficacy of TURBO Pascal.         
  32.  
  33.      It is not anticipated that the source code for this program will be 
  34. placed in the public domain.
  35.  
  36.      Have fun with CW.  If you enjoy using it as much as I enjoyed creating 
  37. it, you will have a ball.  Happy DX and bcnu.  
  38.                           73's   Dave   W 1 H K J               
  39.  
  40.  
  41. INSTALLATION PROCEDURE
  42.  
  43.      Create a bootable disk with CW.COM and HELP.CW installed in the root
  44. directory.  CW.COM is compatible with ancilliary programs such as SIDEKICK(tm)
  45. and in fact is much enhanced when used in conjunction with that product. 
  46.  
  47.      When CW is run for the first time, the Logo, and Help screens are created
  48. and stored in a new file called IMAGE.CW.  This new file is used on subsequent
  49. program executions to speed the screen graphic response time.
  50.  
  51.      Press <F10> to review the HELP screen and then <SPACE> followed by <F7>
  52. to enter the configuration procedures.  CW is distributed with presets for
  53. screen colors to suit the authors tastes.  Colors may be altered, reviewed and
  54. eventually stored in an initialization file called INIT.CW.
  55.  
  56.      The internal tone generator is configured to ON by the default configur-
  57. ation parameters.  Try typing a few lines of text and observe the operation of
  58. the type ahead keyboard buffer/display, the character transmit indication and
  59. the morse code generated on the internal speaker.
  60.  
  61. PROGRAM TERMINATION
  62.  
  63.      The <ctrl>C and <Break> keys are disabled by the program.  The program is
  64. exited by the use of the <alt><F10> keystroke combination.  This allows a 
  65. graceful termination of any open files in use by the program.
  66.  
  67. MESSAGE BUFFERS
  68.  
  69. <F1> - Transmitting a Message Buffer
  70.  
  71.      CW maintains 10 message buffers (0..9) which may be transmitted by press-
  72. ing <F1># where # is  0..9 .  The <F1># sequence may be pressed at any time
  73. which automatically inserts the specified message buffer into the outgoing 
  74. character buffer.                               
  75.                                                                 
  76. <F2> - Modifying the Message Buffers
  77.                                                                
  78.      The contents of the ten message buffers may be observed and modified by
  79. pressing <F2>.  The ten message buffers are displayed on a full screen and 
  80. the operator prompted to enter a number (0..9) to modify a buffer, or <ESC> 
  81. to return to the split screen display.  If a buffer is selected the buffer is 
  82. cleared and the cursor placed at the beginning of the buffer line.  Up to 80 
  83. characters may be put in each buffer.  
  84.  
  85. <alt><F1> - Loading the Message Buffers
  86.  
  87.      The 10 message buffers may be loaded from disk.  This is accomplished by
  88. pressing <alt><F1>.  The operator is prompted to enter a valid directory-tree
  89. filename which will contain the desired message buffers.  This file is an
  90. ASCII file containing 10 lines of up to 80 characters per line.  They may be 
  91. created using CW or a separate word processor program.                                         
  92.                                                                 
  93. <alt><F2> - Saving the Message Buffers                                                               
  94.  
  95.      The present message buffer contents may be assigned to a disk file of the
  96. operators choice by pressing <alt><F2>.  The operator is prompted to enter a 
  97. directory-tree filename for storage.  Existing files will be overwritten by 
  98. this function.                 
  99.  
  100. ASCII TRANSMIT/RECEIVE FILES
  101.  
  102. <F3> - ASCII File Transmit Function
  103.  
  104.      Any valid ASCII file may be transmitted by pressing <F3>.  The operator
  105. is prompted to enter the file name (directory modifiers are ok).  If the file
  106. is not found the operator is returned to the split screen display.  If found,
  107. transmission begins immediately with character display in the transmit window. 
  108. CR/LF and other non-Morse-characters are translated to a SPACE for the pur-
  109. poses of generating a correct timing duration.  Transmission may be altered 
  110. with the ^P or ^X keys, causing a pause of termination respectively.  If this
  111. key is accidently pressed, respond to the file name prompt with a <RETN>.
  112.  
  113. <alt><F3> - ASCII Receive File Save Function
  114.                                                                 
  115.      The program maintains a receive buffer of 8192 bytes which acts as a 
  116. first-in/first-out wrap around memory.  The operator may save the contents of
  117. this buffer from its beginning up to the last character received.  Pressing 
  118. the <alt><F3> function key will cause an operator prompt for a filename in
  119. which to save the receive buffer.  If this key is accidently pressed, respond
  120. to the filename prompt with a <RETN>.
  121.                                      
  122. AUTOMATIC LOG MAINTENANCE
  123.             
  124. <F4> - Log Data Entry
  125.  
  126.      CW maintains the file LOG.CW, an ASCII data file containing a log of QSO 
  127. activity.  Data may be entered in the log by pressing <F4>.  The operator is 
  128. prompted to enter the data for the log in the following sequence:
  129.  
  130.      Default values may be obtained by pressing <RETN> alone.  This is partic-
  131. ularly useful for the TIME and DATE values which are the MS-DOS values corr-
  132. ected to UTC.  All other defaults are blank filled strings.  
  133.  
  134.      Each composite of log data forms a single line in the file LOG.CW which
  135. may be subsequently altered with a word processor such as SideKick, Wordstar 
  136. or Brief.                                        
  137.  
  138. <alt><F4> - Saving the LOG
  139.                                                                 
  140.    The file LOG.CW may be updated manually by pressing the <alt><F4> function
  141. key.  Log entries made during normal operation will be automatically saved at
  142. the end of the operating session, or when 100 QSO's have been logged, which-
  143. ever comes first.                                                      
  144.  
  145. TRANSMIT/RECEIVE CHARACTER RATES
  146.                                                                  
  147. <F5> - Set Receive Code Speed = Transmit Code Speed
  148.  
  149.      During CW reception the program maintains an estimate of the incoming
  150. code speed.  First order difference equations are used to filter and smoothly
  151. track changes in the detected speed.  During high noise bursts or for rapid 
  152. changes in received CW speed it may become necessary to reset the receive 
  153. tracking values.  Use this function key to set the current Receive Tracking 
  154. Speed to equal the current Transmit Speed.           
  155.  
  156. <alt><F5> - Set Transmit Code Speed = Receive Code Speed 
  157.                                                                 
  158.      During contests and other rapid CW exchanges it is considered good oper-
  159. ating to transmit at the receive code speed.  Pressing <alt><F5> will immed-
  160. iately force the transmit code speed to the received code speed.
  161.  
  162.                                                                 
  163. <F6> - Adjusting Transmit Code Speed
  164.  
  165.      The transmitted code speed may be adjusted in 1 WPM increments.  Pressing
  166. <F6> causes an operator prompt for the new value on the status line.  Entries
  167. must be digits 0 ... 9, improper entries will be rejected and the prompt re-
  168. issued.                              
  169.  
  170. <alt><F6> - Calibrating the Code Speed
  171.          
  172.      The transmit and receive code speeds are dependent on timing loops used
  173. in TURBO (tm) PASCAL.  They are therefore sensitive to the clock rate of the
  174. computer.  CW can accomodate variations in clock frequencies.  Accurate timing
  175. does require a scope and an external 10 HZ signal generator.  The signal gen-
  176. erator may be a calibrated keyer.
  177.  
  178.      To begin the calibration press <alt><F6> and select the transmit or re-
  179. ceive procedure.
  180.  
  181.      RECEIVE CALIBRATION - Apply a 10 Hz square wave of the proper amplitude
  182. to the input port.  The 10 Hz square wave is the dot rate equivalent of 25
  183. WPM cw.  Pressing the <u> and <d> keys will alter the displayed code speed in
  184. 0.1 WPM increments.  Pressing <U> and <D> will alter displayed code speed in
  185. 1.0 WPM increments.  Press <Q> when the calibration is complete.
  186.           
  187.  
  188.      TRANSMIT CALIBRATION - A nominal 10 Hz square is generated at the output
  189. port.  Adjust this signal for proper frequency by pressing the <u/U> and/or
  190. <d/D> keys for the 10 Hz output.  Press <Q> when the calibration is complete.
  191.      
  192.  
  193.      ALTERNATE CALIBRATE PROCEDURES - The program may be calibrated by 'ear' 
  194. and a watch with a sweep second hand.  Proceed as follows:
  195.  
  196.           <1> Clear the Screen,
  197.           <2> Select transmit code speed to be 25 WPM,          
  198.           <3> Select <F3> (transmit file),
  199.           <4> Specify file name of PARIS -- do not press return.
  200.           <5> At the start of a timed minute press <RETN>
  201.           <6> At the end of the timed minute press ^X to stop transmission.
  202.  
  203.           Count the number of words 'paris' on the screen.  It should be 25.
  204.      If it is not the file INIT.CW can be modified in the Timing Duration
  205.      entry.  The new entry can be calculated as:
  206.  
  207.                     new = old * #words / 25
  208.  
  209.           That completes the transmit calibration.  You now need to calibrate
  210.      an external keyer to 25 wpm.  Some amount of simple hardware will be re-
  211.      quired, the purpose of which is to allow both the computer output and the
  212.      keyer to simultaneously key an external oscillator.  The external keyer 
  213.      speed is then adjusted for a zero beat note between the two keying
  214.      sources.  Use this calibrated keyer as the input as described in the pri-
  215.      mary receive calibration procedure.
  216.  
  217.     
  218. SOFTWARE/HARDWARE CONFIGURATION
  219.                                                       
  220. <F7> - Modifying Configuration
  221.                                                                 
  222.      The operator may modify the characteristics of the program with respect 
  223. to the transmit code weight, initialization values, internal tone, and screen
  224. colors.  Input/output port assignments and logical levels may be changed.  The
  225. designation of time zone for the purposes of timekeeping and logging is avail-
  226. able.       
  227.  
  228.  
  229.      
  230.      TRANSMIT WEIGHTING - The operator may select transmit code weighting to
  231. fit his or her individual requirements.  A prompt for the following charac-
  232. teristics is presented:
  233.  
  234.                     Dash/Dot (3.00) ..... 
  235.                     Letter/Dot (3.00) ... 
  236.                     Word/Dot (7.00) .....
  237.  
  238. where the values in paranthesis are the present values.  Pressing return at
  239. any one of the three leaves the value unchanged.  Here are some suggestions
  240. for transmit weighting and its intended use.
  241.  
  242.           Dash/Dot    Letter/Dot    Word/Dot       Used for:
  243.  
  244.             3.00        3.00          7.00         Standard code weighting
  245.  
  246.             3.60        3.60          8.00         Moderately heavy code
  247.                                                    good for QRN conditions
  248.  
  249.             3.00       10.00         30.00         Practice at 1/2 WPM rate
  250.  
  251.             3.00       17.00         51.00         Practice at 1/3 WPM rate
  252.  
  253.             3.00       24.00         73.00         Practice at 1/4 WPM rate
  254.  
  255.  
  256.  
  257.      SET INTERNAL TONE - The internal cw tones may be toggled ON/OFF and the
  258. frequency of the tone modified.  If the 'y' response is made to the prompt:
  259.  
  260.                PC tone on? <Y/N>');
  261.  
  262. then the operator is requested to enter the desired tone:
  263.  
  264.                Note frequency =  600  change to ....
  265.  
  266.      Pressing <RETN> leaves the frequency unchanged.
  267.  
  268.  
  269.  
  270.      SPECIFYING DEFAULT MESSAGE FILE - The operator may specify the start-up
  271. messages which will be loaded on each execution of CW.  The response to the
  272. prompt:
  273.  
  274.                Enter message file name.ext ... 
  275.  
  276. should be an existing \directory\filename.ext string, where the directory is
  277. optional.
  278.  
  279.  
  280.  
  281.      SPECIFYING TIME ZONE - The program default for time zone is 0.  That is,
  282. you live in Greenwich, England.  Since most of us are not so fortunate, and
  283. good log keeping stipulates used UTC (GMT for us oldtimers), the operator can
  284. specify his or her own time zone as:
  285.  
  286.                Enter your time zone ... 
  287.  
  288.      If a non-zero time zone is entered, the program adjusts the date and time
  289. for the on screen display and the log to accomodate the time zone.  Proper 
  290. attention is also made to month and year rollover with the exception of leap
  291. year.  This is a subject of a future change to the program.
  292.  
  293.  
  294.  
  295.      CONTROLLING HARDWARE INTERFACE - CW may be configured to access any port
  296. within the 8088 port address space.  The individual bit and its logical sense
  297. can also be specified.  The program default values are for the COM1 port and
  298. uses the RTS, CTS signals for Transmit and Receive respectively.  The operator
  299. will be prompted:
  300.  
  301.                     Enter transmit port (tttt)... 
  302.                           transmit bit # (b)..... 
  303.                           transmit logic (y) .... 
  304.                           receive port (rrrr).... 
  305.                           receive bit # (c)...... 
  306.                           receive logic (z) ..... 
  307.  
  308. You must enter the port numbers in decimal, the bit number as 0..7, and the
  309. logic level as 1 => active high; 0 => active low.  This may take some exper-
  310. imenting for your particular hardware.  The author has configured a VISUAL
  311. COMMUTER (IBM clone) and the MFJ 1224, RTTY/CW terminal unit to the LPT1
  312. parallel port and a homebrew interface to the COM1 port.  The homebrew design
  313. is the subject of a forthcoming public domain release.
  314.  
  315.  
  316.  
  317.      CHANGING RECEIVE FILTERING - The program is designed to track the charac-
  318. ter rate of the incoming (received) morse code.  Under ideal conditions, no 
  319. filtering is required at all, however, in the real world of QRN and QRM it is
  320. an absolute necessity.  The filtering is accomplished using the digital equiv-
  321. alent of a low pass filter.  Just as the response of a low pass RC filter can
  322. be controlled by the resistor-capacitor product, the difference equation 
  323. coefficients can be modified to adjust it's response.  The operator is prompt-
  324. ed as follows:
  325.  
  326.                     Receive filter coefficient:
  327.                       fast ... slow
  328.                         <2> .. <8>
  329.  
  330.                     Enter ... 
  331.  
  332.      The default value is 5 which seems to work well with the author's Kenwood
  333. 599D receiver with an 800 Hz CW filter.  A 200 Hz wide active audio filter is
  334. also used along with a limiter/detector of the author's own design.  This is
  335. definitely an area for experimentation and user feedback.  I simply cannot 
  336. afford to buy one of everything to test the programs utility.
  337.  
  338.  
  339. SAVING CONFIGURATION PARAMETERS
  340.  
  341. <alt><F7> - Save Configuration Parameters
  342.             
  343.      The operating characteristics of CW as determined by the configuration
  344. parameters can be saved on the default disk.  The program looks for this file
  345. on initial execution and uses the values contained therein for its presets. 
  346. INIT.CW is an ASCII file created by CW when the <alt><F7> function key is
  347. pressed.  It may be observed/changed with any wordprocessor.  A sample of the
  348. INIT.CW file contents are:
  349.  
  350. Xmt_WPM ............  18
  351. Dash Dot Ratio ..... 3.0
  352. Letter Dot Ratio ... 3.0
  353. Word Dot Ratio ..... 7.0
  354. PC monitor flag ....   1
  355. Monitor note freq .. 600
  356. Time Zone ..........   0
  357. Initial msg file ...NIL
  358. Timing Duration .... 900
  359. Rx Coefficient .....5200
  360. Xmt background .....   7
  361. Xmt foreground .....  14
  362. Rcv background .....   3
  363. Rcv foreground .....  15
  364. Status background ..   4
  365. Status foreground ..  11
  366. Prompt background ..   1
  367. Prompt foreground ..  14
  368. Aux background .....   6
  369. Aux foreground .....  14
  370. Help background ....   2
  371. Help foreground ....  14
  372. Transmit port ......1020
  373. Transmit bit .......   2
  374. Transmit level .....   1
  375. Receive port .......1022
  376. Receive bit ........  16
  377. Receive level ......   1
  378. Filter coefficient..   5
  379.  
  380.      The above values are the equivalent to the internal program configuration
  381. defaults.
  382.   
  383.  
  384. TUNING & OTHER STUFF
  385.  
  386.  
  387. <F8> - Tune the Transmitter
  388.                                                                
  389.      Pressing the <F8> function key causes the transmitter to be held in the 
  390. key down condition.  The key down condition is released when any other key is 
  391. pressed.  I suggest the <SPACE> to prevent on the air burbles - hi.
  392.  
  393.  
  394. <alt><F8> - Send V's
  395.                                                                
  396.      The character V is used as a standard "test" signal by most CW operators.
  397. The <alt><F8> key causes a string of V's to be transmitted.  Pressing any key
  398. will terminate the sequence of V-s.  The <SPACE> is also appropriate here.
  399.                               
  400.                                                                  
  401. <F9> - Clearing the Screen
  402.                                                                
  403.      The split screen display is cleared of all text, the colors reset, and 
  404. the status line refreshed when the <F9> function key is pressed.                           
  405.  
  406.  
  407. <alt><F9> - Reset Receive Buffer Pointer
  408.                                                                
  409.      Clears the screen the same as <F9>, but additionally resets the receive 
  410. buffer to begin loading characters at the beginning.  Useful for initializing
  411. the buffer during incoming traffic or bulletins.                                                      
  412.  
  413.  
  414. <F10> - H E L P !!!
  415.  
  416.      On line help is available and obtained by pressing <F10>.  A command
  417. synopsis is displayed.  Pressing any function-key or alt-function-key sequence
  418. will display the appropriate portion of the HELP.CW file in a central screen
  419. window.  If the file HELP.CW is not on the default drive, no action is taken.
  420.  
  421.